package com.zysdev.zysplayer.opengl.views

import android.content.Context
import android.opengl.GLSurfaceView
import android.util.AttributeSet
import android.util.Log
import com.zysdev.zysplayer.opengl.render.PlayerRender

class PlayerView : GLSurfaceView {

    private var renderer: PlayerRender? = null

    constructor(context: Context) : this(context, null)

    constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {

        // 使用版本2的opengl
        setEGLContextClientVersion(2)

        renderer = PlayerRender(context)

        setRenderer(renderer)

        /**
         * 注意必须在setRenderer 后面。
         * 刷新方式：
         *     RENDERMODE_WHEN_DIRTY 手动刷新，調用requestRender();
         *     RENDERMODE_CONTINUOUSLY 自動刷新，大概16ms自動回調一次onDrawFrame方法
         */
        renderMode = RENDERMODE_WHEN_DIRTY
    }

    fun setYUVData(width: Int, height: Int, y: ByteArray?, u: ByteArray?, v: ByteArray?) {
        if (y != null && u != null && v != null) {
//            Log.e("---","---setYUVData")
            renderer?.setYUVRenderData(width, height, y, u, v)
            requestRender()
        }
    }


}